सी मध्ये कार्य करण्यासाठी अ‍ॅरे पासिंग

सी मध्ये, विविध सामान्य समस्या आहेत ज्यासाठी फंक्शनमध्ये समान प्रकारच्या एकापेक्षा जास्त चल पास करणे आवश्यक आहे. उदाहरणार्थ, चढत्या क्रमाने 10 घटकांची क्रमवारी लावणार्‍या फंक्शनचा विचार करा. अशा फंक्शनला मुख्य फंक्शनमधून वास्तविक पॅरामीटर्स म्हणून 10 क्रमांक पास करणे आवश्यक आहे. येथे, 10 भिन्न संख्या घोषित करण्याऐवजी आणि नंतर फंक्शनमध्ये जाण्याऐवजी आम्ही अ‍ॅरे घोषित आणि आरंभ करू शकतो आणि त्यास फंक्शनमध्ये पास करू शकतो. हे सर्व जटिलतेचे निराकरण करेल कारण हे कार्य आता कितीही मूल्यांसाठी कार्य करेल. आम्हाला माहित आहे की अ‍ॅरे_नावमध्ये पहिल्या घटकाचा पत्ता आहे. येथे, आपण लक्षात घेतले पाहिजे की आपल्याला अ‍ॅरे स्वीकारण्याच्या उद्देशाने फंक्शनमधील अ‍ॅरेचे नाव फक्त पास करणे आवश्यक आहे. औपचारिक पॅरामीटर म्हणून परिभाषित केलेले अ‍ॅरे स्वयंचलितपणे वास्तविक पॅरामीटर म्हणून परिभाषित अ‍ॅरे नावाने निर्दिष्ट केलेल्या अ‍ॅरेचा संदर्भ घेईल. फंक्शनला अ‍ॅरे पास करण्यासाठी खालील वाक्यरचना विचारात घ्या.

pafMKSananaema(AWrenaava);//jaataRAahe AWre

अ‍ॅरेला वितर्क म्हणून प्राप्त करणारे फंक्शन घोषित करण्याच्या पद्धती

अ‍ॅरेला वितर्क म्हणून प्राप्त करणारे फंक्शन घोषित करण्याच्या पद्धती

फंक्शन घोषित करण्याचे 3 मार्ग आहेत ज्याचा हेतू अ‍ॅरेला युक्तिवाद म्हणून प्राप्त करण्याचा आहे.

पहिला मार्ग:

riTnaZRTaEpa kayaZ(pzakar AWrenaava[])

रिक्त सबस्क्रिप्ट नोटेशन घोषित करणे [] हे व्यापकपणे वापरले जाणारे तंत्र आहे.

दुसरा मार्ग:

riTnaZRTaEpa kayaZ(pzakar AWrenaava[Aakar])

वैकल्पिकरित्या, आम्ही सबस्क्रिप्ट नोटेशन [] मध्ये आकार परिभाषित करू शकतो.

तिसरा मार्ग:

riTnaZRTaEpa kayaZ(pzakar *AWrenaava)

आपण पॉईंटरची संकल्पना देखील वापरू शकता. पॉईंटर अध्यायात, आम्ही त्याबद्दल शिकू.

सी भाषा कार्य करण्यासाठी अ‍ॅरे पासिंग उदाहरण

उदाहरण

#vaapara<PsaTidiAayaAae.Pca>
paunaZ mainaar(paunaZ PAar[],paunaZ Aakar){
paunaZ mai=PAar[0];
paunaZ mai=0;
jaeMvh(mai=1;mai<Aakar;mai++){
jar(mai>PAar[mai]){
mai=PAar[mai];
}
}//SaevaT cyaa jaeMvh
vaapasakra mai;
}//SaevaT cyaa kayaZ

paunaZ mauqya(){
paunaZ mai=0,mai=0;
paunaZ saMqyaa[]={4,5,7,3,8,9};//oaaeSanaa cyaa AWre

mai=mainaar(saMqyaa,6);//jaataRAahe AWre sah Aakar
laiha("kimaana kzmaaMk Aahe %paunaZ \n",mai);
vaapasakra 0;
}

आउटपुट

kimaana kzmaaMk Aahe 3

अ‍ॅरेची क्रमवारी लावण्यासाठी सी फंक्शन

उदाहरण

#vaapara<PsaTidiAayaAae.Pca>
qaalai babalaRsaaeTZ(paunaZ[]);
qaalai mauqya ()
{
paunaZ PAar[10] = { 10, 9, 7, 101, 23, 44, 12, 78, 34, 23};
babalaRsaaeTZ(PAar);
}
qaalai babalaRsaaeTZ(paunaZ A[]) //AWre A[] gauna Tu PAar.
{
paunaZ mai, jae,Tempa;
jaeMvh(mai = 0; mai<10; mai++)
{
jaeMvh(jae = mai+1; jae<10; jae++)
{
jar(A[jae] < A[mai])
{
Tempa = A[mai];
A[mai] = A[jae];
A[jae] = Tempa;
}
}
}
laiha("mauna kzmavaari laavalai oaTk yaaDi ...\n");
jaeMvh(mai = 0; mai<10; mai++)
{
laiha("%paunaZ\n",A[mai]);
}
}

आउटपुट

mauna kzmavaariRlaavalai oaTk yaaDi ...
7
9
10
12
23
23
34
44
78
101

फंक्शनमधून अ‍ॅरे परत

आम्हाला हे माहित आहे की, एक कार्य एकापेक्षा जास्त मूल्य परत करू शकत नाही. तथापि, जर आम्ही रिटर्न स्टेटमेंट रिटर्न ए, बी, सी म्हणून लिहिण्याचा प्रयत्न केला तर; तीन मूल्ये (ए, बी, सी) परत करण्यासाठी, कार्य आमच्या बाबतीत सी आहे जे शेवटचे नमूद केलेले मूल्य परत करेल. काही समस्यांमधे, आम्हाला फंक्शनमधून एकाधिक मूल्ये परत करण्याची आवश्यकता असू शकते. अशा परिस्थितीत, फंक्शनमधून अ‍ॅरे परत केला जातो. अ‍ॅरे परत करणे फंक्शनमध्ये अ‍ॅरे पास करण्यासारखेच आहे. अ‍ॅरेचे नाव फंक्शनमधून परत आले आहे. अ‍ॅरे परत करण्यासाठी फंक्शन तयार करण्यासाठी, खालील वाक्यरचना वापरली जाते.

paunaZ * pafMKSanaRnaava() {
//kahi sTeTmaenT;
vaapasakra AWreRTaEpa;
}

फंक्शनमधून परत केलेला अ‍ॅरे संचयित करण्यासाठी, आम्ही त्या अ‍ॅरेकडे निर्देशित करणारा पॉईंटर परिभाषित करू शकतो. पॉईंटर सुरुवातीला अ‍ॅरेच्या बेस पत्त्याकडे निर्देशित केल्यापासून आम्ही त्या पॉईंटरला वाढवून अ‍ॅरेला ओलांडू शकतो. खालील उदाहरणाचा विचार करा ज्यामध्ये सॉर्ट केलेले अ‍ॅरे परत करणारे फंक्शन आहे.

उदाहरण

#vaapara<PsaTidiAayaAae.Pca>
paunaZ* babalaRsaaeTZ(paunaZ[]);
qaalai mauqya ()
{
paunaZ PAar[10] = { 10, 9, 7, 101, 23, 44, 12, 78, 34, 23};
paunaZ *pai = babalaRsaaeTZ(PAar), mai;
laiha("mauna kzmavaari laavalai oaTk ...\n");
jaeMvh(mai=0;mai<10;mai++)
{
laiha("%paunaZ\n",*(pai+mai));
}
}
paunaZ* babalaRsaaeTZ(paunaZ A[]) //AWre A[] gauna Tu PAar.
{
paunaZ mai, jae,Tempa;
jaeMvh(mai = 0; mai<10; mai++)
{
jaeMvh(jae = mai+1; jae<10; jae++)
{
jar(A[jae] < A[mai])
{
Tempa = A[mai];
A[mai] = A[jae];
A[jae] = Tempa;
}
}
}
vaapasakra A;
}

आउटपुट

mauna kzmavaariRlaavalai oaTk yaaDi ...
7
9
10
12
23
23
34
44
78
101

◀ मागील पुढील ▶